package bar.dark.lee.setting.sms;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
import bar.dark.lee.BDConstents;
import bar.dark.lee.R;
import bar.dark.lee.SuperActivity;
import bar.dark.lee.common.BDUtil;
import bar.dark.lee.common.DBSQLite;
import bar.dark.lee.common.DBSQLite.ParseSelectData;
import bar.dark.lee.setting.TipInfoActivity;
import bar.dark.lee.setting.TipsActivity;

public class SMSUpdateActivity extends SuperActivity implements OnClickListener {
	
	private DBSQLite sql;
	
	private boolean msgFlag = true;
	
	private String id;
	private String cardName;
	private String address;
	private String message;
	private int parserNumber;
	private String linkCardName;
	private ArrayList<String> mArrayAddress = new ArrayList<String>();
	private AlertDialog dialog;
	private String linkCardType;
	private ArrayList<AllCardData> mArrayCard = new ArrayList<AllCardData>();
	
	private int smsType;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.sms_update_activity);
		
		sql = DBSQLite.getInstance(this);
		
		initFindView();
		
		id = getIntent().getStringExtra("id");
		cardName = getIntent().getStringExtra("cardname");
		address = getIntent().getStringExtra("address");
		mArrayAddress = getIntent().getStringArrayListExtra("addressList");
		if ( ! getPaySMSData())
		{
			BDUtil.showDialog(superContext, "오류", "메세지 분석에 실패했습니다.");
		}
		initData(address, message);
		
		setTitle("문자 자동화 수정");
//		InputData data = new InputData();
//		data = getIntent().getParcelableExtra("message");
		
	}
	
	private void initFindView() 
	{
		findViewById(R.id.smsUpdate_btnCardLink).setOnClickListener(this);
		findViewById(R.id.smsUpdate_btnOk).setOnClickListener(this);
		findViewById(R.id.smsUpdate_btnDelete).setOnClickListener(this);
		findViewById(R.id.smsUpdate_btnReParsing).setOnClickListener(this);
	}
	
	private void initData(String address, String message) 
	{
		//SMSParser2 parser2 = new SMSParser2(message);
		Parser parser2 = null;
		try {
			parser2 = new Parser(message);
		} catch (Exception e)
		{
			Toast.makeText(superContext, "문자 분석중에 문제가 생겼습니다. 개발자에게 메일을 보내주세요.", Toast.LENGTH_SHORT).show();
			return;
		} finally
		{
			if (parser2 == null)
			{
				Toast.makeText(superContext, "문자 분석중에 문제가 생겼습니다. 개발자에게 메일을 보내주세요.", Toast.LENGTH_SHORT).show();
				return;
			}
		}
		InputData data = new InputData();
		data = parser2.messageParsing();
		smsType = parser2.getSmsType();
		
		if ( data == null ||
				( (data.getMemo1() == null) || (data.getMemo1().equalsIgnoreCase("")) 
				&& ( (data.getMemo2() == null) || (data.getMemo2().equalsIgnoreCase("")) )
				&& ( (data.getMemo3() == null) || (data.getMemo3().equalsIgnoreCase("")) )
				&& ( (data.getMemo4() == null) || (data.getMemo4().equalsIgnoreCase("")) ) )
				|| !parser2.getAvailable()	  )
		{
			BDUtil.showToast(this, "지원하지 않는 문자 형식입니다..");
			return;
//			SMSParser parser = new SMSParser(message);
//			data = parser.messageParsing();
//			smsType = parser.getSmsType();
//			
//			if (data == null || !parser.getAvailable())
//			{
////				BDUtil.showDialog(SMSActivity.this, "연동불가문자", "지원하지 않는 문자 형식입니다.");
//				BDUtil.showToast(this, "지원하지 않는 문자 형식입니다..삭제하고 다른 문자로 다시 추가해주세요..계속 문제 발생시 개발자에게 메일 주세요~");
//				msgFlag = false;
//				return;
//			}
//			
//			Toast.makeText(superContext, "정확하게 등록이 된 문자가 아닙니다. 해당 문자를 개발자에게 보내주시면 더 정확하게 사용이 가능합니다.", Toast.LENGTH_LONG).show();
		}
		else
		{
			if (smsType == BDConstents.IN_SMS || smsType == BDConstents.IN_ATM_SMS)
			{
				((TextView)findViewById(R.id.smsUpdate_textDateTitle)).setText("입금날짜");
				((TextView)findViewById(R.id.smsUpdate_textMoneyTitle)).setText("입금금액");
			}
			else if (smsType == BDConstents.OUT_ATM_SMS)
			{
				((TextView)findViewById(R.id.smsUpdate_textDateTitle)).setText("출금날짜");
				((TextView)findViewById(R.id.smsUpdate_textMoneyTitle)).setText("출금금액");
			}
			
			msgFlag = true;
		}
		
		/*
		 * ( data.getMemo1().equalsIgnoreCase(data.getMemo2())
				&& data.getMemo2().equalsIgnoreCase(data.getMemo3())
				&& data.getMemo3().equalsIgnoreCase(data.getMemo4()) ) )
		 * 
		 */
//		if (!parser2.getAvailable())
//		{
//			SMSParser parser = new SMSParser(message);
//			data = parser.messageParsing();
//			
//			if (parser.getAvailable())
//			{
////				BDUtil.showDialog(SMSActivity.this, "연동불가문자", "지원하지 않는 문자 형식입니다.");
//				BDUtil.showToast(this, "지원하지 않는 문자 형식입니다..");
//				msgFlag = false;
//				return;
//			}
//		}
//		else
//		{
//			msgFlag = true;
//		}
		
		if (data != null) 
		{
			cardName = data.getName();
			
			((TextView)findViewById(R.id.smsUpdate_editAddress)).setText(address);
			((TextView)findViewById(R.id.smsUpdate_editBody)).setText(message);
			((TextView)findViewById(R.id.smsUpdate_textName)).setText(data.getName());
			((TextView)findViewById(R.id.smsUpdate_textDate)).setText(data.getDate());
			((TextView)findViewById(R.id.smsUpdate_textMoney)).setText(data.getMoney());
			
			((TextView)findViewById(R.id.smsUpdate_textMyCardName)).setText(linkCardName);
			
//			switch (parserNumber) {
//				case 1:
//					((RadioButton)findViewById(R.id.smsUpdate_radioMemo1)).setChecked(true);
//				break;
//				case 2:
//					((RadioButton)findViewById(R.id.smsUpdate_radioMemo2)).setChecked(true);
//				break;
//				case 3:
//					((RadioButton)findViewById(R.id.smsUpdate_radioMemo3)).setChecked(true);
//				break;
//				case 4:
//					((RadioButton)findViewById(R.id.smsUpdate_radioMemo4)).setChecked(true);
//				break;
//				default:
//				break;
//			}

			if (data.getMemo1().equalsIgnoreCase(data.getMemo2()) && data.getMemo1().equalsIgnoreCase(data.getMemo3()) && 
					data.getMemo1().equalsIgnoreCase(data.getMemo4()))
			{
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo1)).setText(data.getMemo1());
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo1)).setChecked(true);
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo2)).setVisibility(View.GONE);
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo3)).setVisibility(View.GONE);
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo4)).setVisibility(View.GONE);
			}
			else
			{
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo1)).setText(data.getMemo1());
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo2)).setText(data.getMemo2());
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo3)).setText(data.getMemo3());
				((RadioButton)findViewById(R.id.smsUpdate_radioMemo4)).setText(data.getMemo4());
			}
			
			mArrayCard.clear();
			getCheckCardData();
			getCreditCardData();
			getBankbookData();
		}
		else
		{
			BDUtil.showDialogFinish(superContext, "오류", "분석 실패입니다. 지우고 다시 등록해주세요.");
		}
	}
	
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
			case R.id.smsUpdate_btnOk:
				showAlertDialog("문자 자동화 수정", "문자 자동화를 수정하시겠습니까?", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						//setUpdateData();
						
//						initData(((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString(), 
//								((TextView)findViewById(R.id.smsUpdate_editBody)).getText().toString());
						
//						SMSParser parser = new SMSParser(message);
//						InputData data = new InputData();
//						data = parser.messageParsing();
//						
//						if (!parser.getAvailable()) {
////							BDUtil.showDialog(SMSActivity.this, "연동불가문자", "지원하지 않는 문자 형식입니다.");
////							BDUtil.showToast(superContext, "지원하지 않는 문자 형식입니다..");
//							msgFlag = false;
//							BDUtil.showDialog(superContext, "오류", "분석이 되지 않는 문자 타입입니다.");
//							return;
//						}
//						else
//						{
//							msgFlag = true;
//						}
						
						//SMSParser2 parser2 = new SMSParser2(message);
						Parser parser2 = null;
						try {
							parser2 = new Parser(message);
						} catch (Exception e)
						{
							Toast.makeText(superContext, "문자 분석중에 문제가 생겼습니다. 개발자에게 메일을 보내주세요.", Toast.LENGTH_SHORT).show();
							return;
						} finally
						{
							if (parser2 == null)
							{
								Toast.makeText(superContext, "문자 분석중에 문제가 생겼습니다. 개발자에게 메일을 보내주세요.", Toast.LENGTH_SHORT).show();
								return;
							}
						}
						InputData data = new InputData();
						data = parser2.messageParsing();
						
						if (data == null ||
								( (data.getMemo1() == null) || (data.getMemo1().equalsIgnoreCase("")) 
								&& ( (data.getMemo2() == null) || (data.getMemo2().equalsIgnoreCase("")) )
								&& ( (data.getMemo3() == null) || (data.getMemo3().equalsIgnoreCase("")) )
								&& ( (data.getMemo4() == null) || (data.getMemo4().equalsIgnoreCase("")) ) )
								|| !parser2.getAvailable()	  )
						{
							BDUtil.showToast(superContext, "지원하지 않는 문자 형식입니다..");
							return;
//							SMSParser parser = new SMSParser(message);
//							data = parser.messageParsing();
//							
//							if (data == null || !parser.getAvailable()) {
//	//							BDUtil.showDialog(SMSActivity.this, "연동불가문자", "지원하지 않는 문자 형식입니다.");
//	//							BDUtil.showToast(superContext, "지원하지 않는 문자 형식입니다..");
//								msgFlag = false;
//								BDUtil.showDialog(superContext, "오류", "분석이 되지 않는 문자 타입입니다.");
//								return;
//							}
//							
//							Toast.makeText(superContext, "정확하게 등록이 된 문자가 아닙니다. 해당 문자를 개발자에게 보내주시면 더 정확하게 사용이 가능합니다.", Toast.LENGTH_LONG).show();
						}
						else
						{
							msgFlag = true;
						}
						
						if ( ! ((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString().equalsIgnoreCase(address)) {
							for (int i=0; i<mArrayAddress.size(); i++) {
								
								if (((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString().equalsIgnoreCase(mArrayAddress.get(i))) {
//									BDUtil.showDialog(SMSActivity.this, "연동불가문자", "동일한 번호의 결제문자가 이미 등록되어 있습니다.");
									BDUtil.showToast(SMSUpdateActivity.this, "동일한 번호의 결제문자가 이미 등록되어 있습니다.");
									return;
								}
							}
						}

						if (((TextView)findViewById(R.id.smsUpdate_textName)).getText().toString().length()==0) {
							BDUtil.showDialog(SMSUpdateActivity.this, "적용불가문자", "죄송합니다. 적용할 수 없는 문자입니다. 개발자에게 해당 문자메세지를 메일로 보내주세요.");
							return;
						}
						
						if (((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString().length()==0) {
							BDUtil.showDialog(SMSUpdateActivity.this, "연동번호누락", "연동할 문자의 번호를 적어주세요.");
							return;
						}
						
						if (((TextView)findViewById(R.id.smsUpdate_textMyCardName)).getText().toString().equalsIgnoreCase("-")) {
							BDUtil.showDialog(SMSUpdateActivity.this, "연동카드누락", "문자와 연동될 카드를 선택해주세요.");
							return;
						}
						
						new ShowDialog().execute(BDUtil.asyncFlag, 2);
					}
				});
			break;
			case R.id.smsUpdate_btnDelete:
				showAlertDialog("문자 자동화 삭제", "문자 자동화를 삭제하시겠습니까?", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						//setDeleteData();

						new ShowDialog().execute(BDUtil.asyncFlag, 1);
					}
				});
			break;
			case R.id.smsUpdate_btnCardLink:
				setLinkCard();
			break;
			case R.id.smsUpdate_btnReParsing:
				showAlertDialog("문자내용 재분석", "문자내용을 다시 분석하시겠습니까?", new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						initData(((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString(), 
								((TextView)findViewById(R.id.smsUpdate_editBody)).getText().toString());
						BDUtil.showDialog(SMSUpdateActivity.this, "알림", "문자내용을 다시 분석했습니다.");
					}
				});
			break;
			default:
			break;
		}
	}
	
	public void showAlertDialog(String titleText, String contentText, DialogInterface.OnClickListener okListener)
	{
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		
		builder.setTitle(titleText);
		builder.setIcon(android.R.drawable.ic_dialog_info);
		builder.setMessage(contentText);
		
		builder.setPositiveButton("확인", okListener);
		builder.setNeutralButton("취소", new DialogInterface.OnClickListener()
		{
			@Override
			public void onClick(DialogInterface dialog, int which)
			{
				dialog.dismiss();
			}
		});
		
		dialog = null;
		dialog = builder.create();
		dialog.show();
	}
	
	private void setLinkCard() {
		
		if (mArrayCard.size() > 0)
		{
			View view = LayoutInflater.from(this).inflate(R.layout.sms_dialog2, null);
			ListView listView = (ListView) view.findViewById(R.id.smsDialog2_listView);
			CardAdapter adapter = new CardAdapter(this, R.layout.list_item_sms3, mArrayCard); 
			listView.setAdapter(adapter);
			listView.setOnItemClickListener(adapter);
			
			adapter.setNotifyOnChange(true);
			
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
			builder.setView(view);
			builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
				}
			});
			dialog = null;
			dialog = builder.create();
			dialog.show();
		}
		else
		{
			BDUtil.showDialogManager(superContext, "카드가 하나도 없습니다.");
		}
	}
	
	private void setDeleteData()
	{
		String [] whereArgs = new String[]{id};
		sql.delete(this, "sms", "id = ?", whereArgs);
	}
	
	private void setUpdateData()
	{
		HashMap<String, String> map = new HashMap<String, String>();
		map.put("name", ((TextView)findViewById(R.id.smsUpdate_textName)).getText().toString());
		map.put("address", ((TextView)findViewById(R.id.smsUpdate_editAddress)).getText().toString());
		map.put("message", ((TextView)findViewById(R.id.smsUpdate_editBody)).getText().toString());
		map.put("linkcardname", ((TextView)findViewById(R.id.smsUpdate_textMyCardName)).getText().toString());
		map.put("linkcardtype", linkCardType);
		if (((RadioButton)findViewById(R.id.smsUpdate_radioMemo1)).isChecked())
		{
			map.put("parser", "1");
		}
		else if (((RadioButton)findViewById(R.id.smsUpdate_radioMemo2)).isChecked())
		{
			map.put("parser", "2");
		}
		else if (((RadioButton)findViewById(R.id.smsUpdate_radioMemo3)).isChecked())
		{
			map.put("parser", "3");
		}
		else if (((RadioButton)findViewById(R.id.smsUpdate_radioMemo4)).isChecked())
		{
			map.put("parser", "4");
		}
			
		SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
		int radioAutoCheck = pref.getInt("smsRadioGroup", 1);
		if (radioAutoCheck == 1)
		{
			SharedPreferences.Editor editor = pref.edit();
			editor.putInt("smsRadioGroup", 3);
			editor.commit();
		}
		
		String [] whereArgs = new String[]{id};
		try {
			sql.update(this, "sms", map, "id = ?", whereArgs);
		} catch (Exception e) {
			e.printStackTrace();
			BDUtil.showToast(getApplicationContext(), "입력 실패");
			return;
		}
	}
	
	/**
	 * 결제문자정보 데이터 가져온다
	 */
	private boolean getPaySMSData() {
		
		sql = DBSQLite.getInstance(this);
		
		String query = "";
		query = "SELECT address, message, parser, linkcardname, linkcardtype FROM sms where id = " + id + ";"; 
		
		try {
			sql.selectMapTile(this, query, new ParseSelectData()
			{
				@Override
				public void resultData(Cursor c)
				{
					int count = c.getCount();
					c.moveToFirst();
					
					int messageIndex = c.getColumnIndex("message");
					int parserIndex = c.getColumnIndex("parser");
					int linkCardNameIndex = c.getColumnIndex("linkcardname");
					int linkCardTypeIndex = c.getColumnIndex("linkcardtype");
					for (int i = 0; i < count; i++)
					{
						message = c.getString(messageIndex);
						parserNumber = Integer.parseInt(c.getString(parserIndex));
						linkCardName = c.getString(linkCardNameIndex);
						linkCardType = c.getString(linkCardTypeIndex);
						c.moveToNext();
					}
				}
			});
		} catch (Exception e) {
			//e.printStackTrace();
			return false;
		}
		
		return true;
	}
	
	/**
	 * 신용카드 데이터 가져온다
	 */
	private void getCreditCardData() {
		String query = "";
		
		query = "SELECT id, name FROM credit_card"; 
		
		sql.selectMapTile(this, query, new ParseSelectData()
		{
			@Override
			public void resultData(Cursor c)
			{
				int count = c.getCount();
				c.moveToFirst();
				
				int idIndex = c.getColumnIndex("id");
				int nameIndex = c.getColumnIndex("name");
				
				for (int i = 0; i < count; i++)
				{
					AllCardData data = new AllCardData();
					data.setId(c.getInt(idIndex) + "");
					data.setName(c.getString(nameIndex));
					data.setCardType("3");
					mArrayCard.add(data);
					c.moveToNext();
				}
			}
		});
	}
	
	/**
	 * 체크카드 데이터 가져온다
	 */
	private void getCheckCardData() {
		String query = "";
		
		query = "SELECT id, name FROM check_card"; 
		
		sql.selectMapTile(this, query, new ParseSelectData()
		{
			@Override
			public void resultData(Cursor c)
			{
				int count = c.getCount();
				c.moveToFirst();
				
				int idIndex = c.getColumnIndex("id");
				int nameIndex = c.getColumnIndex("name");
				
				for (int i = 0; i < count; i++)
				{
					AllCardData data = new AllCardData();
					data.setId(c.getInt(idIndex) + "");
					data.setName(c.getString(nameIndex));
					data.setCardType("4");
					mArrayCard.add(data);
					c.moveToNext();
				}
			}
		});
	}
	
	/**
	 * 통장 데이터 가져온다
	 */
	private void getBankbookData() {
		String query = "";
		
		query = "SELECT id, name FROM ( SELECT b.id id, b.name name FROM bankbook b, bankbook_detail d WHERE b.id = d.linkid and count > 0 ORDER BY count) " +
				"UNION ALL " +
				"SELECT id, name FROM ( SELECT b.id id, b.name name FROM bankbook b, bankbook_detail d WHERE b.id = d.linkid and count < 1 ORDER BY count);";;
		
		sql.selectMapTile(this, query, new ParseSelectData()
		{
			@Override
			public void resultData(Cursor c)
			{
				int count = c.getCount();
				c.moveToFirst();
				
				int idIndex = c.getColumnIndex("id");
				int nameIndex = c.getColumnIndex("name");
				
				for (int i = 0; i < count; i++)
				{
					AllCardData data = new AllCardData();
					data.setId(c.getInt(idIndex) + "");
					data.setName(c.getString(nameIndex));
					data.setCardType("1");
					mArrayCard.add(data);
					c.moveToNext();
				}
			}
		});
	}
	
	private class CardAdapter extends ArrayAdapter<AllCardData> implements OnItemClickListener 
	{
		Context context;
		int viewId;
		ArrayList<AllCardData> items;
		
		public CardAdapter(Context context, int textViewResourceId, ArrayList<AllCardData> objects) {
			super(context, textViewResourceId, objects);
			this.context = context;
			this.viewId = textViewResourceId;
			this.items = objects;
		}
		
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			View view = convertView;
			
			if (view == null) {
				view = LayoutInflater.from(context).inflate(viewId, null);
			}
			
			AllCardData data = items.get(position);
			
			if (data.getCardType().equals("3"))
			{
				((TextView) view.findViewById(R.id.listSMS3Type)).setText("신용카드 : ");
			}
			else if (data.getCardType().equals("4"))
			{
				((TextView) view.findViewById(R.id.listSMS3Type)).setText("체크카드 : ");
			}
			else if (data.getCardType().equals("1"))
			{
				((TextView) view.findViewById(R.id.listSMS3Type)).setText("통      장 : ");
			}
			
			((TextView) view.findViewById(R.id.listSMS3Name)).setText(data.getName());
			
			return view;
		}
		
		@Override
		public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
			((TextView) findViewById(R.id.smsUpdate_textMyCardName)).setText(items.get(arg2).getName());
			linkCardType = items.get(arg2).getCardType();
			if (dialog != null) {
				dialog.dismiss();
				dialog = null;
			}
		}
	}

	@Override
	protected void tipButton() {
		Intent intent = new Intent(this, TipInfoActivity.class);
		intent.putExtra(TipsActivity.TIP_REQUEST_KEY, TipsActivity.TIP_AUTOMASSAGE);
		startActivity(intent);
	}
	
	/**
	 * 다이얼로그 뛰우기 
	 */
	private class ShowDialog extends AsyncTask<Integer, Integer, Integer>{
		ProgressDialog dialog = null;
		
		@Override
		protected void onPreExecute() {
			super.onPreExecute();
			
			if (BDUtil.btnEnable)
			{
				BDUtil.btnEnable = false;
				BDUtil.asyncFlag = -1;
				
				dialog = new ProgressDialog(SMSUpdateActivity.this);
				dialog.setCancelable(false);
				dialog.setMessage("Loading...");
				dialog.show();
			}
		}
		
		@Override
		protected Integer doInBackground(Integer... arg0) {
			
			if (arg0[0] == 0) {
				if (arg0[1] == 1)
				{
					try
					{
						sql.beginTansaction(superContext);
						
						setDeleteData();
						
						sql.setTransactionSuccessful();
					} catch (Exception e)
					{
						return -1;
					} finally {
						try 
						{
							sql.endTransaction(superContext);
						} catch (Exception e) 
						{
							return -1;
						}
					}
					
					return arg0[1];
				}
				else if (arg0[1] == 2) 
				{
					try
					{
						sql.beginTansaction(superContext);
						
						setUpdateData();
						
						sql.setTransactionSuccessful();
					} catch (Exception e)
					{
						return -1;
					} finally {
						try 
						{
							sql.endTransaction(superContext);
						} catch (Exception e) 
						{
							return -1;
						}
					}
					
					return arg0[1];
				}
				return arg0[0];
			} else 
				return arg0[0];
		}

		@Override
		protected void onPostExecute(Integer result) {
			super.onPostExecute(result);
			
			if (dialog != null) {
				dialog.dismiss();
			}
			
			if (result == -1)
			{
				BDUtil.btnEnable = true;
				BDUtil.asyncFlag = 0;
				
				BDUtil.showDialog(superContext, "오류", "데이터 저장에 실패했습니다.");
			}
			else if (result == 1)
			{
				BDUtil.showDialogFinish(SMSUpdateActivity.this, "알림", "문자 자동화 삭제에 성공하였습니다.");
			}
			else if (result == 2)
			{
				BDUtil.showDialogFinish(SMSUpdateActivity.this, "알림", "설정 저장에 성공하였습니다.");
			}
		}
	}
}
